Demand for data storage for personal and commercial use is ever rising.
For example, as digital recording and playback devices, such as digital cameras and music players, become more popular, then the number of personal users needing to store large amounts of data (e.g. >10 gigabytes) increases. Furthermore, as these devices are used, then the amount of content generated or downloaded accumulates and so the amount of data to be stored also increases.
Requirements for data storage are also changing.
Traditionally, data files, such as digital photographs, have been stored on a storage device, such as a magnetic hard disk, at a single location, for example on a home computer. However, users increasingly want to be able to access their data remotely and even on-the-move. Moreover, users may also want to share their data with other users.
Distributed storage comprising more than one storage device and which is managed using a virtual file system can offer solutions to these problems.
Storage devices can be added to provide additional capacity. Furthermore, to the user, it appears that their data is stored in a single, accessible “location”, even though physically the data may be stored disparately across many storage devices, which may even change with time. Also, the user can grant access privileges to other users, such as friends or work colleagues, allowing them to read and even update his or her files.
Conventional distributed storage systems using virtual file systems are known.
U.S. Pat. No. 5,873,085 describes a system having a plurality of servers, each server managing a respective file system and at least one server operating a virtual file management system. The virtual file management system includes a management table storing a virtual file identifier, a server name and a real file name for each virtual file. If a server receives a request from a client to read or modify a specified file and the server does not hold the file, then the server identifies which other server stores the file, modifies the request to instruct the other server to respond directly to the client and forwards the modified request to the other server.
This system suffers the drawback that the servers also store data. This can limit the amount of the storage that can be added to any one server. Adding further servers can provide additional storage, but this is more expensive than simply adding additional storage devices.
US-A-20050246393 describes a network storage system having a virtual file system and a storage cluster having a plurality of intelligent storage nodes and a plurality of control nodes (referred to also as “distributed object storage managers”) for identifying and accessing an intelligent storage node storing a specified object file. Each distributed object storage manager maintains a lookup table identifying the location of object files stored in intelligent storage nodes and a state table storing information regarding the overall capacity and health of intelligent storage nodes. The state table is used to select an intelligent storage node to store a new object file. If the network storage system receives a request to store data in a new object file, a load balancing fabric selects one of the distributed object storage managers based on availability and forwards the request to the selected distributed object storage manager. In turn, the distributed object storage manager selects an intelligent storage node.
Different distributed object storage managers are responsible for storing new object files. Thus, each distributed object storage manager only stores information about files for which they are responsible, at least initially. Thus, if a distributed object storage manager receives a request to access a given file for which they are not responsible, then they broadcast a request for the file to the intelligent storage nodes. Therefore, the intelligent storage nodes must be provided with sufficient processing capability to handle such requests. This makes it more difficult to add storage nodes.
The present invention seeks to provide an improved server for managing access to distributed storage and, thus, an improved distributed storage system.